home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / utils / tosfixes / hsmoda06.lzh / HSM_DOKU / DRVIN.GER < prev    next >
Text File  |  1994-12-30  |  10KB  |  226 lines

  1. DRVIN.PRG
  2. =========
  3.  
  4. (Ich habe keine Zeit, alles ausführlich einzutippen. Wenn jemand Treiber
  5. für andere Hardware oder einen "Treiberadapter" für Mint schreiben will,
  6. kann er sich gern an mich wenden. Assemblerkenntnis setze ich allerdings
  7. voraus. Irgendwann wird hier die vollständige Doku der Funktionen
  8. erscheinen.)
  9.  
  10.  
  11. Dieses Programm (DRVIN) unterstützt nachladbare Gerätetreiber. Es muß vor
  12. diesen Treibern geladen werden. DRVIN und Treiber müssen vor den
  13. Programmen geladen werden, die die Treiber nutzen sollen. DRVIN gehört in
  14. den AUTO-Ordner (für Spezialisten: oder in eine äquivalente
  15. Programmsammelecke). Man kann es zu Testzwecken auch vom Desktop aus
  16. starten. Es sollte aus Geschwindigkeitsgründen möglichst weit hinten im
  17. AUTO-Ordner stehen.
  18.  
  19.  
  20. TOS
  21. ---
  22. DRVIN läuft unter allen mir bekannten TOS-Versionen.
  23.  
  24. Mag!X, MagiC
  25. ------------
  26. DRVIN läuft unter Mag!X ab Version 2.00. Mit älteren Mag!X-Versionen müßte 
  27. es ebenfalls funktionieren, dies wurde aber nicht getestet. Bei 
  28. MagiC-Versionen >2.00 sind einige Funktionen von DRVIN unnötig und werden 
  29. nicht verwendet. Es wird ein MagiC geben, wahrscheinlich MagiC3, das alle 
  30. Funktionen von DRVIN enthält. Dann ist DRVIN überflüssig und die Treiber 
  31. werden ohne DRVIN gestartet.
  32.  
  33. MiNT
  34. ----
  35. Wenn man DRVIN und die Treiber vor MiNT startet, bleibt nur wenig von den 
  36. Funktionen übrig. Deshalb sollte man DRVIN und die Treiber nach MiNT 
  37. starten. Dabei realisieren sie alle ihre Funktionen wie unter TOS, aber 
  38. nicht mehr. Umlenkungen, Schlafenlegen oder sonstige unter TOS nicht 
  39. ferfügbare Funktionen sind mit den Filehandles dieser Geräte nicht 
  40. möglich. Ich weiß nicht, ob die Umschaltung des AUX-Gerätes für den 
  41. aktuellen Prozeß dann noch funktioniert. Ich benutze weder MiNT noch 
  42. MultiTOS. Solange sich kein MiNT-Freak findet, der die Anpassung und 
  43. Unterstützung übernimmt, wird es wohl kaum speziell an MiNT angepaßte 
  44. Versionen geben.
  45.  
  46.  
  47. Die Konfiguration
  48. -----------------
  49. Die Konfiguration erfolgt durch das SETTER.TTP. Zur Bedienung siehe
  50. SETTER.TXT.
  51.  
  52. FASTINT:
  53. MFP.PRG kann den Timerinterrupt des TOS modifizieren, um so 57600Bd mit 
  54. 8MHz-68000 über MODEM1 zu ermöglichen. Auch auf MegaSTE, TT und Falcon 
  55. kann es noch positive Wirkungen haben. Unter MagiC wird die Modifikation 
  56. nicht durchgeführt, da MagiC (ab Version 2.0) bereits eine "freundliche" 
  57. Timerroutine besitzt. Bei Experimenten mit anderen Betriebssystemen oder 
  58. seltsamen Fehlern sollte man zuerst FASTINT abschalten.
  59.  
  60. Funktionsweise (für Interessenten):
  61. Es hat sich gezeigt, daß es ausreichend ist, wenn die Routine (GEMDOS-Uhr)
  62. in NEXT_TIM (negative LineA-Variable) mit einem IPL < 6 aufgerufen wird,
  63. um auf 68000/8MHz den 57600Bd-Empfang zu ermöglichen. Also hänge ich ein
  64. Programmstück ein, daß den IPL auf 5 heruntersetzt. Diese Vorgehensweise
  65. ist nicht völlig unkritisch, bringt aber nur Probleme, wenn andere
  66. Programme ebenfalls derartige Fummeleinen anstellen.
  67.  
  68. EXOPEN:
  69. (Wirkt nur, wenn der GEMDOS-Teil des DRVIN benutzt wird, also nicht unter 
  70. Magic Version3.)
  71. Mit "Ja" wird eine strenge Überwachung der GEMDOS-Funktion Fopen 
  72. aktiviert, die verhindert, daß ein Gerät mehrmals gleichzeitig geöffnet 
  73. ist. Damit kann man benutzte (geöffnete) Geräte gegen unbeabsichtigte 
  74. Eingriffe durch andere Programme schützen, aber nur auf GEMDOS-Ebene. 
  75. Normalerweise sollte man "Nein" benutzen, da einerseits einige Programme 
  76. mit einer Fehlermeldung bei Fopen nicht klarkommen (unsinnige Anzeigen bis 
  77. zum Abturz) und andererseits die Beendigung von Programmen nicht überwacht 
  78. wird, so daß im Gegensatz zum sonstigen GEMDOS-Verhalten das Gerät 
  79. geöffnet bleibt (auch bei anormalem Programmende = Absturz)! (Kurzfassung: 
  80. Momentan mehr ein Spielzeug für Entwickler.)
  81.  
  82.  
  83. Aufbau
  84. ------
  85. DRVIN besteht aus drei wesentlichen Teilen: dem Anlegen des RSVF-Cookies,
  86. der neuen Bconmap- und MAPTAB-Verwaltung für BIOS und XBIOS sowie den
  87. Basisroutinen für die Installation einfacher Mag!X-kompatibler
  88. Gerätetreiber.
  89.  
  90.  
  91. RSVF-Cookie
  92. -----------
  93. Es wird ein RSVF-Cookie angelegt, dessen Wert auf zwei 0-LONGs zeigt, also
  94. auf ein Ende-Objekt. So brauchen Gerätetreiber keinen Cookie mehr
  95. anzulegen, sondern sich nur noch in die RSVF-Listen einzuhängen. Der
  96. RSVF-Cookie liefert eine Struktur zur Anzeige grundlegender Informationen
  97. über Schnittstellen. Zur Beschreibung des RSVF-Cookies siehe Textfile
  98. RSVF_COO.TXT.
  99.  
  100.  
  101. MAPTAB-Verwaltung
  102. -----------------
  103. Dieser Programmteil hängt im BIOS- und XBIOS-Trap und bearbeitet die
  104. XBIOS-Funktionen Bconmap, Rsconf und Iorec(für AUX). Es werden die
  105. BIOS-Funktionen Bconstat, Bconin, Bcostat und Bconout für Gerät AUX sowie
  106. alle Geräte ab einschließlich 6 aufwärts bearbeitet. Bconmap und eine
  107. MAPTAB werden unter jeder TOS-Version angelegt. Die Routinen des aktuell
  108. per Bconmap eingestellten Gerätes werden zusätzlich in die xco*-Vektoren
  109. (außer bei TOS1.00) kopiert, dort aber nicht benutzt. Es werden zwei neue
  110. Bconmap-Unterfunktionen mit den Opcodes -400 und -401 zum Überschreiben
  111. eines MAPTAB-Eintrages und zum Anhängen an die MAPTAB bereitgestellt.
  112.  
  113. Die Länge der MAPTAB ist nicht mehr fest begrenzt. ### Momentan liegt die
  114. Maximallänge in DRVIN.PRG bei 10 Einträgen, ist aber nur eine konstante
  115. Variable in der Assemblerquelle und jederzeit erweiterbar.
  116.  
  117.  
  118. GEMDOS-Teil
  119. -----------
  120. Der sieht von außen aus wie die bisherigen HSMODEM1-Versionen und von
  121. innen wie eine (### momentan noch) stark abgerüstete Mag!X-Beta.
  122. Es werden Fopen, Fread, Fwrite, Fclose, Fcntl an den Treiber
  123. weitergeleitet, aber alles mit fileptr == NULL.
  124.  
  125.  
  126. Aktionen
  127. --------
  128. Wird DRVIN auf TOS > 2.00 oder auf Mag!X >= 2.00 losgelassen, dann kopiert
  129. es die alten Routinen aus den alten MAPTABs, so daß eine Funktion der
  130. (X)BIOS-Aufrufe mit den alten TOS-Routinen gegeben ist, auch ohne
  131. installierte Treiber. Bei TOS1.00 sieht es ganz übel aus, man muß den
  132. MFP-Treiber nachladen, sonst geht SerialI/O nicht mehr (nur Zeiger auf
  133. IOREC wird übertragen). Bei 1.00 < TOS < 2.00 geht es etwas, da nur Rsconf
  134. nicht übertragen wird, aber deshalb muß man trotzdem den MFP-Treiber
  135. nachladen.
  136.  
  137.  
  138. Mag!X- (und DRVIN-) freundliche Bco*-Routinen
  139. ---------------------------------------------
  140. veränderbare Register A0-A2/D0-D2 (auch bei Rsconf)
  141. Bconout muß mit dem Befehl
  142.  lea 6(sp),a0
  143. beginnen und wird meist hinter diesem (Startadr+4) mit A0 als Zeiger auf 
  144. das WORD mit dem Parameter aufgerufen
  145.  
  146.  
  147. Neue XBIOS-Bconmap-Funktionen (-400, -401)
  148. ------------------------------------------
  149. Diese Funktionen dürfen nur zur Installation Mag!X-freundlicher Funktionen
  150. benutzt werden.
  151.  
  152. In der MAPTAB ist Platz für mehr als 4 Geräte. Der Lieferant dieser
  153. XBIOS-Funktionen (DRVIN oder zukünftiges Mag!X) sorgt für ausreichend
  154. Platz zur Installation neuer Geräte in der MAPTAB. Entweder er schafft den
  155. Platz dynamisch oder er hat eine feste Obergrenze. Ein Treiber sollte
  156. trotzdem mit einer Fehlermeldung rechnen, die durch Speichermangel
  157. ausgelöst sein könnte, aber auch ganz andere Ursachen haben kann.
  158.  
  159. Die XBIOS-Funktion Bconmap wird um zwei Unterfunktionen erweitert. Sind
  160. diese Erweiterungen nicht vorhanden, bekommt man beim Funktionsaufruf
  161. automatisch eine 0 als Fehlermeldung zurück.
  162.  
  163. LONG Bconmap((WORD)-400, (WORD) dev_nr, (LONG) ptr_to_6_longs)
  164. dev_nr ist eine Gerätenummer ab 6 aufwärts, die in der MAPTAB bereits
  165. existieren muβ, andernfalls wird der Fehlercode -15 EUNDEV zurückgegeben.
  166. ptr_to_6_longs zeigt auf eine Struktur, die einem MAPTAB-Eintrag
  167. entspricht. Diese Struktur wird auf den entsprechenden Platz in der MAPTAB
  168. kopiert. Ist das angesprochende Gerät das aktuell per Bconmap für AUX
  169. eingestellte, so werden die eben eingehängten Routinen auch nach xco* und
  170. in die aktuellen rsconf und iorec-Zellen kopiert. Diese Funktion dient nur
  171. zum Einhängen Mag!X-freundlicher Routinen. Als Erfolgsmeldung wird die
  172. Gerätenummer zurückgegeben, auf die der Eintrag erfolgte, also dev_nr ist
  173. Rückgabewert.
  174.  
  175. LONG Bconmap((WORD)-401, (LONG) ptr_to_6_longs)
  176. ähnlich -400, fügt aber einen Kanal an die MAPTAB an. Rückmeldung ist
  177. entweder die von dieser Funktion für den Eintrag gewählte Kanalnummer,